home *** CD-ROM | disk | FTP | other *** search
- # Local filesystem mounting -*- shell-script -*-
-
- # Parameter: Where to mount the filesystem
- mountroot ()
- {
- [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-top"
- run_scripts /scripts/local-top
- [ "$quiet" != "y" ] && log_end_msg
-
- # If the root device hasn't shown up yet, give it a little while
- # to deal with removable devices
- if [ ! -e "${ROOT}" ] || ! /lib/udev/vol_id "${ROOT}" >/dev/null 2>&1; then
- log_begin_msg "Waiting for root file system..."
-
- # Default delay is 180s
- if [ -z "${ROOTDELAY}" ]; then
- slumber=180
- else
- slumber=${ROOTDELAY}
- fi
- if [ -x /sbin/usplash_write ]; then
- /sbin/usplash_write "TIMEOUT ${slumber}" || true
- fi
-
- slumber=$(( ${slumber} * 10 ))
- while [ ! -e "${ROOT}" ] || ! /lib/udev/vol_id "${ROOT}" >/dev/null 2>&1; do
- /bin/sleep 0.1
- slumber=$(( ${slumber} - 1 ))
- [ ${slumber} -gt 0 ] || break
- done
-
- if [ ${slumber} -gt 0 ]; then
- log_end_msg 0
- else
- log_end_msg 1 || true
- fi
- if [ -x /sbin/usplash_write ]; then
- /sbin/usplash_write "TIMEOUT 15" || true
- fi
- fi
-
- # We've given up, but we'll let the user fix matters if they can
- while [ ! -e "${ROOT}" ]; do
- echo " Check root= bootarg cat /proc/cmdline"
- echo " or missing modules, devices: cat /proc/modules ls /dev"
- panic "ALERT! ${ROOT} does not exist. Dropping to a shell!"
- done
-
- # Get the root filesystem type if not set
- if [ -z "${ROOTFSTYPE}" ]; then
- eval $(fstype < ${ROOT})
- else
- FSTYPE=${ROOTFSTYPE}
- fi
- if [ "$FSTYPE" = "unknown" ] && [ -x /lib/udev/vol_id ]; then
- FSTYPE=$(/lib/udev/vol_id -t ${ROOT})
- [ -z "$FSTYPE" ] && FSTYPE="unknown"
- fi
-
- [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-premount"
- run_scripts /scripts/local-premount
- [ "$quiet" != "y" ] && log_end_msg
-
- if [ ${readonly} = y ]; then
- roflag=-r
- else
- roflag=-w
- fi
-
- # FIXME This has no error checking
- modprobe -Qb ${FSTYPE}
-
- # FIXME This has no error checking
- # Mount root
- mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt}
-
- [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-bottom"
- run_scripts /scripts/local-bottom
- [ "$quiet" != "y" ] && log_end_msg
- }
-